Structured document browser

ABSTRACT

A structured document browser includes a constant user interface for displaying and viewing sections of a document that is organized according to a pre-defined structure. The structured document browser displays documents that have been marked with embedded codes that specify the structure of the document. The tags are mapped to correspond to a set of icons. When the icon is selected while browsing a document, the browser will display the section of the structure corresponding to the icon selected, while preserving the constant user interface.

A portion of the disclosure of this document contains material which issubject to copyright protection. The copyright owner has no objection tothe facsimile reproduction by any one of the patent disclosure as itappears in the Patent and Trademark Office patent files or records, butotherwise reserves all rights to copyright protection whatsoever.

FIELD OF THE INVENTION

This invention relates to computer applications for viewing documents,and in particular, to a computer program for viewing documents having apredefined structure.

BACKGROUND OF THE INVENTION

Current computing environments typically include a graphical userinterface (GUI). IBM personal computers and IBM compatibles run eitherOS/2 or Windows. The Macintosh has always had GUI capabilities as partof its operating system. Even higher end computers, including those thatrun Unix or VAX/VMS operating systems, are available with componentsthat provide a GUI environment.

GUI's are generated using a set of software tools that put graphicalobjects on the computer display. One of these graphical objects is ascreen pointer that the user controls with a mouse or a trackball. Theuser moves the mouse to position the pointer on the screen over selectedobjects on the screen. The user can select an object by using aselecting device which is typically a mouse switch. By selecting anobject, the user instructs the operating system or an application toexecute the function associated with the object. The GUI objects caninclude the graphical representation of buttons, menus or any othergraphic object.

GUI's are the foundation of hypertext and hypermedia applications. suchapplications allow computer users to create interfaces in whichgraphical objects are configured to correspond, or to link to objects ofinformation. For example, a user may create an interface having thegraphical representation of a button to display a motion video byselecting the button with a screen pointer. Similarly, the button can beconfigured to make a sound, display an image or display a separate textfile.

Today's increasing interest in the Internet is due in part to theimprovements in hypermedia applications. The World Wide Web is growingdramatically due to the evolution of standard markup languages thatallow users to mark documents with links to other documents, and ofpresenters or viewers that interpret the markup language in thedocuments allowing the users to view the links.

One of the first markup tools was the Standard Generalized MarkupLanguage (SGML). SGML was developed by the International Standardsorganization and has been adopted by the Department of Defense and othergovernment agencies as a way of standardizing documentation. SGML ismachine-based in a manner similar to a computer language. An SGMLDocument Type Definition (DTD) may be defined according to thespecifications of SGML for a given document structure. The DTD defineselements to be embedded in a document. The documents are then viewedusing a viewer or browser that interprets the elements in the documentaccording to the data structure defined in the DTD.

The HyperText Markup Language (HTML) is an instance of a DTD defined bySGML. HTML elements or codes are embedded into documents for use withHTML browsers. Browsers display the documents according to stylesheetsassociated with the embedded codes. The stylesheets contain rules orinstructions that dictate the appearance of a document as presented by abrowser. Stylesheets may also contain references to other documents indifferent computers. These references may be used in conjunction withcontext-sensitive regions of the documents such that a user retrievesthe document reference by selecting the region. In this manner, anauthor links one document to others in a meaningful way such that aviewer may provide a user with access to information in documents thatare linked together in a web-like fashion.

One common characteristic of many browsers is that the links toinformation are presented solely within documents. The links may takethe user to other documents or to locations within the same document,but typically, the elements that provide the link control are within thedocuments.

Having the control to the information links within the documentsthemselves is adequate where the documents are short and where thepurpose is to obtain information in brief, concise statements. But wherea document is long, it becomes difficult to browse the document sincethe only potential access to other destinations are in whatever part ofthe document is currently being displayed.

Moreover, organizations often work with standardized documents. Thesedocuments typically have a carefully defined purpose and are usuallycharacterized by a standard structure. These documents may be long andthe main purpose for viewing the documents is often to accessinformation found in a specific section of the well-known structure ofthe document.

SUMMARY OF THE INVENTION

In view of the above, a structured document browser is provided with auser interface that remains uniform and familiar as the user browsesdocuments according to their structure instead of their contents. Thebrowser uses codes embedded in the document to identify sections of thestructure of the document. The user interface includes graphical userinterface objects, such as buttons, that are configured to display astandard section of the document structure when selected by the user.

The structured document browser may also include menus that allow a userto select a document from among different documents, or a documentstructure type from among different structure types.

It is another object of the invention to provide a method for browsing adocument by using a screen pointer to select a graphical user interfaceobject and displaying a section of the document that corresponds to thegraphical user interface object.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a preferred embodiment of the structureddocument browser showing how it communicates with other components ofthe computer.

FIG. 2 illustrates a sample structure for a document.

FIG. 3 illustrates a portion of a document having the structure shown inFIG. 2 after it has been marked with SGML tags.

FIG. 4 illustrates an SGML document type definition (DTD) created foruse by a structured document browser for a document having the structureshown in FIG. 2.

FIG. 5 is a representation of an example of a user interface of thestructured document browser for FIG. 1.

FIG. 6 is a flow chart showing the process of retrieving a structureddocument and illustrates playing the section of a document in responseto the selection of a button.

FIG. 7 illustrates an example of a bks data structure.

FIG. 8 is a diagram that shows the interaction between a button, a mapfile and bit map file.

FIGS. 9A & 9B illustrate the operation of the browser of FIG. 1.

FIG. 10 illustrates one example of an alternative implementation of theuser interface.

FIG. 11 illustrates a second alternative implementation of the userinterface.

FIG. 12 illustrates a third alternative implementation of the userinterface.

FIG. 13 illustrates a fourth alternative implementation of the userinterface.

DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS

In the description that follows, reference is made to the drawings wherelike elements are identified by like numerals throughout.

A presently preferred embodiment of this invention includes anapplication program called browser.exe that has been developed using the‘c ’ programming language in the Windows environment. The browser.exeexecutable file is programmed to make function calls to three dynamiclink libraries named sit.dll, cgrmzv.dll and ct13d.dll. These librariesare components of Dynatext Version 2.0, a user interface developmentsystem from Electronic Book Technologies, Inc. These Dynatext librariesprovide functions that implement the SGML related functions and thegraphic input/output functions. Further information regarding theDynatext program may be obtained by contacting Electronic BookTechnologies, Inc. at One Richmond Square, Providence, R.I. 02906.

The browser.exe program uses data structures in several support filesthat are in the same directory tree as browser.exe. These support fileswill be described in more detail in the description that follows.

A listing of the present version of browser.exe is attached as AppendixI of this specification. The listing is an octal representation ofbrowser.exe. The presently preferred embodiment may be carried out byconverting the octal to a binary executable file using methods that arewell known in the art. After conversion, the browser.exe file may beexecuted from a directory that includes the dynamic link libraries andthe support files described in this disclosure.

It is to be understood however, that an embodiment of the presentinvention may be developed for any computing environment using anysuitable development system.

The browser application in a presently preferred embodiment is referredto in the following detailed description as the browser 80 as shown inFIG. 1. FIG. 1 is a block diagram describing at a high level the browser80 in the computing environment. The components of the browser 80 in itsoperating environment include the browser 80 itself, an operating system104 with GUI capabilities, storage media 108, a keyboard 110, a pointingdevice 100, a selecting device 102 and a monitor 112. The operatingsystem 104 further includes an I/O system 114 and a GUI system 116.

The double headed arrows 118 denote the communication between therespective components. The communication at 118 may entail communicationover a network where appropriate.

The hardware devices 108, 110, 100, 102, 112 may be implemented bychoosing from among many alternatives for each device. A pointing device100 may be implemented using a mouse, a trackball or any other devicethat controls the position of a screen pointer. A selecting device 102is typically implemented with mouse buttons or buttons that operate inconjunction with a trackball. In general, any device that may be used toeffect the selection of an object at the location of the screen pointermay be used as a selecting device 102. A selecting device 102 may eveninclude a key on the keyboard 110. The storage media 108 is understoodto include random access memory (RAM), the temporary storage out ofwhich programs are executed as well as the mass storage devices in whichprograms are stored. The hardware devices 108, 110, 100, 102, 112 areunderstood to include the software drivers necessary for their operationin the computing environment.

The browser 80 includes at least a controller 82 and a system interface84. The system interface 84 is responsible for processing thecommunication between the browser 80 and the operating system 104, theIBM system 114 and the GUI system 116. The controller 82 receives andinterprets requests from the system interface 84 to perform a browserfunction. For example, the system interface 84 receives signals from theIBM system 114 that the pointing device 100 and the selecting device 102were used. to press a button or icon, to request a display of a sectionof a document. The controller 82 receives the information from thesystem interface 84 to determine which document section to display.

In a presently preferred embodiment, the system interface 84 includesthe functions provided by the Dynatext development system and anyoperating system or I/O system functions. The controller 82 in apreferred embodiment is the executable program browser.exe. It is to beunderstood that the diagram in FIG. 1 is by way of illustration and isnot intended to limit the software structure chosen to carry out theinvention.

The browser 80 operates with documents that have been prepared asdescribed below. Because the browser 80 is designed to navigatedocuments according to their structure, the utility of the browser 80 ismaximized when an organization establishes a standard structure for itskey documents. A software engineering group, for example, may find itdesirable to maintain a uniform structure for the software requirementspecifications that the group develops. A different structure isdesirable for the group's design specifications, and yet a differentstructure works for the group's test documentation. The group's goal forsuch documentation is to maintain uniformity.

Referring to FIG. 2, a marketing group might maintain productdescriptions for its company's product line in documents having thepredefined document structure 10. This structure is predefined to haveheadings 12 that provide overview information, sales information,product availability information, ordering information, billinginformation, troubleshooting information and product supportinformation. The structure also has sub-headings 14 within each headingwhere relevant. The overview section 16 has sub-headings 14 for sectionsdevoted to a product description, aliases, product features andinstructions on how to use the product.

A specific document of the predefined structure in FIG. 2 is marked withcodes for viewing with the browser 80. in a preferred embodiment, codesare used to mark the document as shown in FIG. 3. The codes shown inFIG. 3 have angle brackets around them. In a preferred embodiment, thecodes are SGML elements. These codes may be replaced by elements ofother markup tools in alternative embodiments. In the marked document20, the application identification code 22 indicates that the documenthas been marked for use by the browser 80. The overall documentstructure is identified with a product name code 24. Each standardstructure component is then marked with an appropriate code or element.

The sections in a document are preferably marked according to aconvention. First, the beginning of a section is marked by a code orelement. For example, the <OVER> element 26 identifies the beginning ofthe section of the document that provides an overview of the product.The <OVER> element 26 is followed by the heading and text thatconstitute the Overview section of the document. A begin section nameelement 28 indicates that the information that follows the element 28specifies the name that will appear in all documents of the samestructure for that section. In the marked document 20 in FIG. 3, thename of the overview section is “Overview” 30. Immediately after thename, an end section name element 32 indicates the end of that sectionname such that the text between the begin section name element 28 andthe end section name element 32 is the text 30 that will appear in theheading. Similarly, an end section element 34 indicates the end of thesection. In this case, the element </OVER> 34 marks the end of theoverview section. The convention of marking the beginning and the end ofparts of the document is used to mark other sections (as shown at 36,38, 39 and 42) that form the standard document structure.

Begin sub-section elements 38 and end sub-section elements 42 mark thesub-sections of the document, using the same convention, with thestipulation that the end elements 39 are in an order that keeps thesub-sections nested within the sections. Documents may have sub-sectionswithin sub-sections.

In a preferred embodiment, the structure of documents is defined by adocument type definition (DTD). The DTD 40 in FIG. 4 illustrates how adocument structure is represented in SGML. Codes such as thosereferenced at 24, 25, 26 and 38, that are used to indicate a section orstructure part of the document as shown in FIG. 3, are defined bysetting an element name, as shown at 42 and 44 in FIG. 4; setting aheading name, as shown at 47 and 49; and listing sub-parts as shown at46. For example, the code for the product name 24 in FIG. 3 is definedin the DTD 40 as the element name 42 for the high level documentstructure composed of the list of sections 46. The list of sections 46comprises the codes defining the sections of the document. The codesused in FIG. 3 for the begin section codes 25 are defined in the DTD 40of FIG. 4 as element names 44 for the respective section level datastructures. The respective name codes, such as the begin section nameelement 27 in FIG. 3, is shown as part of a section, as shown at 45 inFIG. 4. The name element 45 is also defined at 51. If a section hassub-parts, or sub-sections, the codes for the sub-sections within thesection are listed in the definition of the section code as shown at 48.Each sub-section code is then defined individually as shown at 43. Moredetails on the is syntax and constructs of SGML may be obtained byreferring to the ISO Standard for SGML ISO 8879: 1986/A1: 1988(E).

In a preferred embodiment, a document having a basic word processingformat may be converted to a marked document 20, also known as an SGMLinstance, using an SGML utility. For example, a utility called DYNATAGfrom Electronic Book Technologies, rnc., uses documents having thestructure described in FIG. 2 to create a DTD 40, illustrated in FIG. 4,as well as an SGML instance 20, illustrated in FIG. 3. Other SGMLutilities may be used to create DTD's and SGML instances. The discussionof the DTD 40 is presented to illustrate how alternative embodimentsmight implement a program that interprets SGML DTD's to operate with thebrowser.

An infinite number of DTD's may be used, including common DTD's such asthe HTML DTD. In addition, other embodiments of this invention may notuse SGML as a markup language. Any other suitable markup language,including a proprietary markup language, may be used as well, providedthat the appropriate software components are available to translate thecode. Other embodiments of this invention may be designed to support theuse of more than one markup language.

Once a document has been marked and converted into a format that isappropriate for the browser 80, the browser 80 may be started on acomputer. Referring back to FIG. 1, the user invokes the browser 80 byusing the pointing device 100 and the selecting device 102 to select thebrowser 80 in a manner dictated by the GUI of the operating system 104.In the preferred embodiment, the operating system 104 is the WindowsOperating System (Version 3.1 and later for purposes of this example),the pointing device 100 is a mouse, and the selecting device 102includes a pair of mouse buttons (left and right buttons). The Windowsuser interface 106, as it appears on the monitor 112, includes a menubar 68, icons 66 representing application programs ready forinitialization and a screen pointer 62 controlled by the user with themouse pointing device 100.

To initialize the browser 80 in the Windows environment, the mouse 100may be used to place the screen pointer 62 over the browser icon 64 inthe operating system interface 106 and the left mouse button may bedouble-clicked.

Once the browser 80 has been initialized, the graphical user interfacechanges from the Windows user interface 106 in FIG. 1 to that of thebrowser user interface as shown at 50 in FIG. 5.

Referring to FIG. 5, the user interface 50 of the browser 80 gives theuser the capability of selecting a particular document and thenselecting different sections of the document for display. The objectsused to browse through the documents remain on the user interface 50regardless of where in a document a user is browsing. The user interfaceremains familiar to the user and responsive to the document structure.

The user interface 50 of the browser 80 includes a document menu 52, adocument type menu 54, a first row of selectors 56, a second row ofselectors 58 and a display window 60.

The user selects a document for browsing by using the document menu 52.The document menu 52 is implemented with standard graphical userinterface menu objects such that the user selects a document menu arrow70 to display the full menu of the documents available. The user thenselects the document desired from the menu using the selecting device102 in combination with the screen pointer 62.

The user interface 50 of the browser 80 is configured in a manner thatallows the document types, or standard structures of different types, tobe listed in a document type menu 54. The document type is selected bythe user in the same manner that the user selects a document. The nameof the document type is the name or alias of directories designated bythe browser to have documents of a consistent structure. When adifferent document type is selected, the names listed in the documentmenu are changed according to the names of the available documentshaving the new document type.

The selectors 56, 58 are examples of document navigation tools that maybe used for browsing documents in a presently preferred embodiment. Morespecifically, selectors 56, 38 are display regions in the user interfacethat are configured to perform pre-defined operations when the userplaces the screen pointer 62 over one of the selectors 56, 58 and thenselects it with the selecting device 102. In the presently preferredembodiment, the display regions are depicted as icons that make themlook like buttons with graphic images on them. The image may be designedto convey a sense of the operation to be performed if the icon isselected.

The first row of selectors 56 is configured to correspond to the firstlevel of sections in a document. For example, the first selector 68 inthe first row 56 is configured to correspond to the overview section 16in the document shown in FIG. 2.

Each selector is configured so that when the user places the screenpointer 62 over the selector and then selects it with the selectingdevice 102, the system interface 84 (described above with reference toFIG. 1) receives data indicating which selector was selected. The systeminterface 84 may then determine the document section associated with theselector and send the request to display that section to the controller82 (described above with reference to FIG. 1). Alternatively, the systeminterface 84 may send to the controller 82 the identification of thechosen selector and let the controller 82 determine what section todisplay. The controller 82 will cause the document to be searched forthe document section that matches the selector chosen. When the chosensection is found, the browser 80 displays in the display window 60 thesection of the document structure that corresponds to the selector.

Once the desired section is in the display window 60, the user maynavigate within the section by selecting one of the second row ofselectors 58. Each time a selector from the first row of selectors 56 isselected, the second row of selectors 58is configured to correspond tothe sub-sections 14 within the section 12 being displayed (as shown inFIG. 2). A document structure having sub-sections within itssub-sections may also be accommodated so that three rows of selectorsmight be present in the user interface. The number of sub-sectionswithin sections of a document may be further accommodated with rows ofselectors as desired, or as limited by system constraints, such as thesize of the display window 60.

The user may also navigate within the section by controlling the displaywindow scroll bar 96 with the screen pointer 62 and the selecting device102.

To describe the manner in which the selectors 56, 58 in the browser userinterface 50 are configured, the initialization of the browser will bedescribed in conjunction with exemplary files or data structures thatare utilized during browsing operations. It is to be understood thatthis is only one implementation of the preferred embodiment, and thatthe files may be replaced, or integrated, or revised to form differentdata structures without departing from the scope of the invention.Furthermore, the Dynatext development tools may be replaced by otherfunctionally equivalent tools.

In the presently preferred embodiment, documents are converted into“books” which are actually directory trees that reside in a directorycalled the “\xyz\books” directory. The terms “book,” “collection” and“library” are defined and used according to the specifications of theDynatext development system.

In order to create the Dynatext books, the documents that have beencoded as illustrated in FIG. 3 are supplied as input to a utility calledDYNATAG which is a component of the Dynatext system. DYNATAG creates aDTD (as shown in FIG. 4) and an SGML instance (as shown in FIG. 3) ofthe document. The SGML instance and the DTD are used as input files toKMBOOK, another Dynatext utility. The MKBOOK utility creates a binaryinstance of the document, a directory tree, or a “book,” and some of thesupport files used by the browser 80. For example, the document forWidget having the structure for products descriptions defined in FIG. 2is processed with MKBOOK to create the book “\xyz\books\widget,” asub-directory of “\xyz\books.”

The browser 80 uses a number of data files to define how a document isfound and displayed in the browser. These files and their names in thepreferred embodiment are 1) the browser executable (browser.exe); 2) aninitialization file (browser.ini); 3) a set of dynamic link libraries(sit.dll, cgmzv.dll, & ct13.dll); 4) a bks file which is an ASCII filethat contains information about a book, a library or collection ofdocuments, and names in the browser menus (named *.bks where the *represents the name of a document); 5) a bitmap containing up to 100regions for icons (named *.bmp or default.bmp) and 6) an ASCII file thatprovides the linking of the document element names to the icons in thebmp file and for pop-up text in the executable (named *.map ordefault.map).

The execution of the browser 80 will be described with reference to FIG.6 which is a flowchart describing the steps taken to browse a document.When the user starts the structured document browser in the mannerdescribed above in reference to FIG. 1, the operating system launchesthe browser.exe executable file as shown at block 120. This file islocated in a directory called the “\xyz” directory. When browser.exe islaunched it first looks for the three required dynamic link libraries(DLL's) in the same directory as shown at block 122. The DLL's, suppliedby Electronic Book Technologies, contain functions related to the userinterface, SGML processing and access to the books.

If the DLL's are available, the browser then checks for the browser.inifile as shown in 124. If the browser.ini tile is present, the browser 80reads its contents, as shown at block 126.

As the sample tile in Table 1 shows, the browser.ini file containsobjects, or data structures that include the [Files] object, the [DTEXT]object, and the [MAP] object. The [FILES] object defines an annotationfile. The annotation file is a repository for feedback from users of thebrowser regarding the documents being reviewed. The [DTEXT] objectcontains file names that the executable will use to find the location ofthe data directory, security key, and public and private directories.The [MAP] object provides the file name of the initial map file that isto be loaded (typically, the name is “default.zmap”). The map file, asdiscussed in detail below, contains the associations between thedocument elements and the icons. TABLE 1 Sample browser.ini File [Files]AnnotationFile=\xyz\annot.txt [DTEXT] DATA_DIR=\xyz\dataDTEXT_AUTH=@\xyz\data\security PUBLIC_DIR=\xyz\tmp\publicPRIVATE_DIR=\xyz\tmp\private [MAP] Icons=default.bmp

Referring back to FIG. 6, once the browser.ini file is processed at 126,the browser checks for a file called default.bks at block 128. Thedefault.bks file is an ASCII file which. provides the browser with theinformation required to display a standard initial document, such as adocument that displays a message of the day.

If a default.bks file is not found, the browser initializes without abook as shown at 130. Otherwise, the contents of default.bks are loadedas shown at 132 and the user interface is presented on the display tothe user as shown at 134.

The bks files will be described by reference to FIG. 7. The bks filesare ASCII files that contain information about how the book should beloaded into the menus in the browser and which map file to use. The bksfile always begins with the [Book] object 140 in FIG. 7. The next lineidentifies the “collection.” In a preferred embodiment, a collection,also called a library, refers to the directory containing the books towhich the browser so has access. In FIG. 7, the collection is located inthe “\xyz” directory.

The next line in a bks file as shown in FIG. 7 identifies the collectiontitle 144 which defines a document type for the document type menu 54.The collection title 144 is an alias for the group of books that will belisted under a heading in the document type menu 54 called “Products.”

The name of the book 146 is on the next line of the bks file. The bookname is actually the name of the directory tree that must be presentunder the collection path specified in line two 142 of the bks file. Thebook title at 148 specifies an alias for the book. The book titlecontains the name the user will see on the document menu 52 (at FIG. 5).The map file name 150 is optional. It designates the map file thatassociates the tag names with the icons in the .bmp file. If specified,the browser will use the file name 152 to access the map file.otherwise, the browser will assume a file name based on a pre-definednaming convention.

Referring back to FIG. 6, a user requests a document 160 by using thedocument menu 52 or the document type menu 54 in the user interface 50(shown in FIG. 5). When the menu is selected (before a document isselected), the bks file is read in and the menu lists document anddocument type names according to the contents of the bks file. When auser requests to receive a document as shown at 160, the browserretrieves the document itself as shown at 162 and the map fileassociated with that document as shown at 164.

The browser then verifies that the elements in the map file match theSGML DTD and the structure codes in the document as shown at 166. Ifthere are no discrepancies, the browser 80 reads the bmp file as shownat 168 which is specified in the map file. Also, in block 168, thebrowser 80 locates fly-by text for description of icons. The bmp fileallows the browser to display the icons as shown at 170 for theselectors 56, 58 (in FIG. 5). The browser also displays the text in thechosen document as shown at 170. once the selectors on the userinterface match the structure requirements of the document, the user mayselect a section of the document to view by pressing a selector buttonthat corresponds to that section as shown at 172 The correspondencebetween the selectors 56, 58 and the document structure is establishedin the map file and in the bmp file. This correspondence will bedescribed with reference to FIG. 8.

FIG. 8 shows a portion of the map file 200 for the document having thestructure in FIG. 2, a bmp file 210 and the location on the userinterface in which the selectors are placed 220. The first object in themap file is the [MAP] object 180 which identifies the data structure.The next line in the map file is the icon line 182 which is a filenamethat is used by the browser 80 to obtain the bmp file for the structurecorresponding to the map file.

The next line in the map file shown in FIG. 8 contains the [SECTIONS]object 184. The [SECTIONS] object 184 marks the beginning of a set ofdefinitions of data structures 186 that help tie the selector icons tothe sections in the document The order of these data structuresindicates the order in which the sections appear in the document.

The first item under [sections] is “RBW-Doc, PROD. NAME,OVER=1:Overview” 188. The RBW-DOC, PROD. NAME 190 label indicates thatthe section identified in this line is in the first or highest levelsection. The OVER label 192 in the line matches the <OVER> tag 26 usedto identify the overview section in the marked structure document shownin FIG. 3. The expression OVER=1 192 specifies which icon in the bmpfile corresponds to the section identified. The text following the colonat 194 is used in fly-by help or bubble help messages. For example, whenthe screen pointer 62 is positioned over an icon 222 as shown in FIG. 8,a Help message 196 is displayed to indicate the function of the button.The expression OVER=1 192 and the fly-by-help text 194 are read by thebrowser 80 during block 168 in FIG. 6.

An example of the bmp file is shown in FIG. 8 at 210. The icons arestored in the bmp file as a single rectangular bitmap. Each icon is 16pixels wide by 15 pixels high. In the presently preferred embodiment,the icons make the selectors appear to be buttons. The icon index startsat 1 and proceeds from left to right. So the icon index might appear asfollows: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <etc>

An example of how the map file relates to the bmp file is given in FIG.8. Assume the user moves the screen pointer 62 to the troubleshootingicon, which is the sixth selector or 222 in the top row of selectors 56and then selects it. The sixth button 222 corresponds to the sixth icon224 in the bmp file. The browser so refers to the map file at the lineRBW-Doc, PROD.NAME,TROUBL=6: Troubleshooting 226 to determine whichelement name must be searched. The line at 226 defines the TROUBLelement as the element that must be searched when the sixth button inthe first row 222 is selected.

While every book could have a separate map file and bmp file, thesefiles relate to all books in a library. In other words, all books in theproduct library should have the same document structure (i.e., documenttype definition). Thus, a prd.map provides the mappings for all books inthe products (i.e., prd) library and, a prd.bmp provides the icons forall books in the products (i.e., prd) library. The icons should relateto the hierarchical structure of the document structure as specified inthe document type definition.

FIGS. 9A & 9B demonstrate the operation of the browser 80 byillustrating the way in which the user interface 50 changes in responseto the pressing of a button. FIG. 9A shows the user interface 50 in aninitial state with the Overview section 16 of the widget productsdocument from FIG. 2 in the display window 60. The selectors 58 of thesecond row are represented by icons that correspond to the sub-sections246 of the description section.

The user of the browser 80 may wish to view information that is known toexist in the troubleshooting section 18 of the widget productdescription. As shown in FIG. 2, the troubleshooting section 18 istowards the end of the document. Standard documents may be as short asone printed page or long enough to fill several binders. The browser 80simplifies the retrieval of information by allowing access to apre-defined section of a document by pushing a button. The screenpointer 62 may be moved from an initial position 240 to the positionover the icon for the troubleshooting button 222. The user then selectsthe troubleshooting button 222 by enabling the selecting device 102. Thebrowser 80, using the process illustrated in FIG. 8, then searchesthrough the binary instance of the document for the troubleshootingsection. The browser 80 displays the found section 242 in the displaywindow 60 as shown in FIG. 9B. In addition to displaying the foundsection 242, the browser 80 updates the second row of selectors 58 tocorrespond to the sub-sections 248 in the found section 242.

The user interface 50 of the browser 80 may be enhanced by addingobjects to give the user more tools with which to view the documents.The user interface 50, shown in FIG. 9A, includes a next section button92, a previous section button 94, a go forward button 72, a go backwardbutton 74 and string search tools 78, 86, 88, 89. These objects may beprogrammed into the browser 80 along with the software components thatprovide the indicated functions.

When the next section button 92 is selected with the combined action ofthe screen pointer 62 and the selecting device 102, a user views thenext section in the document. For example, the next section after theoverview section 16 in FIG. 9A is the Sales section (See FIG. 2).Selecting the next section button 92 in FIG. 9A causes the browser 80 todisplay the Sales section. The previous section button 94 operates inthe same manner as the next section button 92 except that the previoussection is shown.

The go forward button 72 and go backward button 74 may be used to scrolltext in the display window 60.

The user interface 50 as shown in FIG. 9A may also include string searchtools 78, 86, 88. The string search entry box 78 may be used to input atext string that the user wishes to locate in the document. The nextfound and previous found buttons 86, 88 may be used to display thelocations in the document in which the string was found. The clearsearch button 89 clears the text in the search entry box 78.

The feedback entry function gives the user the ability to providefeedback on a document for those who may browse the document at a latertime. As shown in FIG. 9B, by selecting a feedback file in a menu, or byselecting a tools button 90, a text box 260 opens up to allow the userto enter a note. The text box 260 may be a compilation of messages towhich users append notes, or the contents of the text box 260 may besaved into a separate repository of data periodically. In a preferredembodiment, the compilation of messages may be saved to a SGML-basedfile for support as a document that may be viewed by implementation ofthe browser 80. In addition, the textbox 260 may be replaced by a viewof the messages in the display window 60.

It is to be understood that the appearance of the user interface 50shown in FIGS. 9A & 9B is one example of the user interface in thepresent invention. The appearance and the choice of graphic objects maybe varied to suit the needs of the intended users.

Referring to FIG. 10, one example of how the user interface 50 may bealtered replaces the buttons 56, 58 with other objects. The buttons aremerely display regions of the user interface configured to perform afunction when selected with the screen pointer 62 and the selectingdevice 102. In the presently preferred embodiment of FIG. 9A, theselectors are represented by button icons. As shown in FIG. 10, theseicons may be replaced with words or phrases 268 that are descriptive ofthe section that they are configured to display.

Another variation, shown in FIG. 11, uses a distributed user interfacein which the buttons 288 are located in their own window that isdetached from the display window 60. FIG. 11 illustrates the separatewindows 50, 288 as they might appear on a monitor screen 274.

In another variation shown in FIG. 12, keys on the keyboard 110 may beconfigured as functional equivalents of the screen pointer 62 to selectdocument section selectors 56, 58. FIG. 12 illustrates a monitor screen274 connected to a keyboard 110 via connection 275. In one approach tousing the keyboard, the selectors 56, 58 may be mapped to function keys270 on the keyboard 110. In another approach which may be combined withthe first approach, the browser 80 may first, highlight a selector inresponse to certain keys such as a TAB key 266, or an arrow key 264, andthen select the highlighted selector 280 in response to another key suchas the ENTER key 272.

The user interface so may also be implemented in an environment thatlacks a GUI, such as a character-based system interface. In an exampleof such an implementation shown in FIG. 13, the selectors 56, 58 arewords or phrases that have features such as a character-based borderidentifying them as selectors. The user then selects a selector usingthe keys on the keyboard as described above.

In another example of a character-based user interface 50, the selectors56, 58 are not used at all and the entire screen is the display window.Function keys 270 on the keyboard 110 are implemented in place of theselectors. The function keys 270 may be mapped according to the labelsindicated at 290.

It is to be understood that this specification is provided by way ofillustration and that it is only the claims and their equivalents thatdefine the invention.

1. A system for allowing a user to browse product descriptions for acompany's product line, the system comprising: a processor; and memory,in communication with the processor, that stores: operationalinstructions that, when executed by the processor, cause the processorto receive a user selection of one of a plurality of productdescriptions of a company's product line for display; operationalinstructions that, when executed by the processor, cause the processorto send data to display the one of the plurality of product descriptionsin a display area; and operational instructions that, when executed bythe processor, cause the processor to send data to display a pluralityof selectors in a selector area outside of the display area regardlessof the user selection of the one of the plurality of productdescriptions, the plurality of selectors comprising one or more of thefollowing selectors: overview information selector, sales informationselector, product availability information selector, orderinginformation selector, billing information selector, troubleshootinginformation selector, and product support information selector.
 2. Thesystem of claim 1, wherein the system is part of a computing environmentthat includes communication over a network, and wherein the processor isin communication with the network.
 3. The system of claim 1, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send, over a network, at least oneof the data to display the one of the plurality of product descriptionsand the data to display the plurality of selectors.
 4. The system ofclaim 1, wherein the memory further stores operational instructionsthat, when executed by the processor, cause the processor to send datato display a fly-by help message indicating a function of one of theplurality of selectors after a screen pointer is positioned over the oneof the plurality of selectors.
 5. The system of claim 1, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send data to automatically displaya search string entry box.
 6. The system of claim 1, wherein the memoryfurther stores operational instructions that, when executed by theprocessor, cause the processor to receive a user selection of one of theplurality of selectors.
 7. The system of claim 6, wherein the memoryfurther stores operational instructions that, when executed by theprocessor, cause the processor to send data to display informationassociated with the one of the plurality of selectors.
 8. The system ofclaim 6, wherein the memory further stores operational instructionsthat, when executed by the processor, cause the processor to send data,to display, at a same time as the plurality of selectors, informationassociated with the one of the plurality of selectors.
 9. The system ofclaim 1, wherein the user selection of the one of the plurality ofproduct descriptions is received by: sending data to display a secondplurality of selectors, each selector of the second plurality ofselectors being associated with a respective one of the plurality ofproduct descriptions; and receiving a user selection of one of thesecond plurality of selectors.
 10. A system for allowing a user tobrowse product descriptions for a company's product line, the systemcomprising: a processor; and memory, in communication with theprocessor, that stores: operational instructions that, when executed bythe processor, cause the processor to receive a user selection of one ofa plurality of product descriptions of a company's product line fordisplay; operational instructions that, when executed by the processor,cause the processor to send data to display the one of the plurality ofproduct descriptions in a display area; and operational instructionsthat, when executed by the processor, cause the processor to send datato display a plurality of selectors in a selector area outside of thedisplay area regardless of the user selection of the one of theplurality of product descriptions, the plurality of selectors comprisingan ordering information selector.
 11. The system of claim 10, whereinthe system is part of a computing environment that includescommunication over a network, and wherein the processor is incommunication with the network.
 12. The system of claim 10, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send, over a network, at least oneof the data to display the one of the plurality of product descriptionsand the data to display the plurality of selectors.
 13. The system ofclaim 10, wherein the memory further stores operational instructionsthat, when executed by the processor, cause the processor to send datato display a fly-by help message indicating a function of one of theplurality of selectors after a screen pointer is positioned over the oneof the plurality of selectors.
 14. The system of claim 10, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send data to automatically displaya search string entry box.
 15. The system of claim 10, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to receive a user selection of one ofthe plurality of selectors.
 16. The system of claim 15, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send data to display informationassociated with the one of the plurality of selectors.
 17. The system ofclaim 15, wherein the memory further stores operational instructionsthat, when executed by the processor, cause the processor to send data,to display, at a same time as the plurality of selectors, informationassociated with the one of the plurality of selectors.
 18. The system ofclaim 10, wherein the user selection of the one of the plurality ofproduct descriptions is received by: sending data to display a secondplurality of selectors, each selector of the second plurality ofselectors being associated with a respective one of the plurality ofproduct descriptions; and receiving a user selection of one of thesecond plurality of selectors.
 19. A system for allowing a user tobrowse product descriptions for a company's product line, the systemcomprising: a processor; and memory, in communication with theprocessor, that stores: operational instructions that, when executed bythe processor, cause the processor to receive a user selection of one ofa plurality of product descriptions of a company's product line fordisplay; operational instructions that, when executed by the processor,cause the processor to send data to display the one of the plurality ofproduct descriptions in a display area; and operational instructionsthat, when executed by the processor, cause the processor to send datato display a plurality of selectors in a selector area outside of thedisplay area regardless of the user selection of the one of theplurality of product descriptions, the plurality of selectors comprisinga product support information selector.
 20. The system of claim 19,wherein the system is part of a computing environment that includescommunication over a network, and wherein the processor is incommunication with the network.
 21. The system of claim 19, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send, over a network, at least oneof the data to display the one of the plurality of product descriptionsand the data to display the plurality of selectors.
 22. The system ofclaim 19, wherein the memory further stores operational instructionsthat, when executed by the processor, cause the processor to send datato display a fly-by help message indicating a function of one of theplurality of selectors after a screen pointer is positioned over the oneof the plurality of selectors.
 23. The system of claim 19, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send data to automatically displaya search string entry box.
 24. The system of claim 19, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to receive a user selection of one ofthe plurality of selectors.
 25. The system of claim 24, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send data to display informationassociated with the one of the plurality of selectors.
 26. The system ofclaim 24, wherein the memory further stores operational instructionsthat, when executed by the processor, cause the processor to send data,to display, at a same time as the plurality of selectors, informationassociated with the one of the plurality of selectors.
 27. The system ofclaim 19, wherein the user selection of the one of the plurality ofproduct descriptions is received by: sending data to display a secondplurality of selectors, each selector of the second plurality ofselectors being associated with a respective one of the plurality ofproduct descriptions; and receiving a user selection of one of thesecond plurality of selectors.
 28. A system for allowing a user tobrowse web data, the system comprising: a processor; and memory, incommunication with the processor, that stores: operational instructionsthat, when executed by the processor, cause the processor to receive auser selection of one of a plurality of web data for display;operational instructions that, when executed by the processor, cause theprocessor to send data to display the one of the plurality of web datain a display area; and operational instructions that, when executed bythe processor, cause the processor to send data to display a pluralityof selectors in a selector area outside of the display area regardlessof the user selection of the one of the plurality of web data, theplurality of selectors comprising one or more of the followingselectors: overview information selector, sales information selector,product availability information selector, ordering informationselector, billing information selector, troubleshooting informationselector, and product support information selector.
 29. The system ofclaim 28, wherein the system is part of a computing environment thatincludes communication over a network, and wherein the processor is incommunication with the network.
 30. The system of claim 28, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send, over a network, at least oneof the data to display the one of the plurality of web data and the datato display the plurality of selectors.
 31. The system of claim 28,wherein the memory further stores operational instructions that, whenexecuted by the processor, cause the processor to send data to display afly-by help message indicating a function of one of the plurality ofselectors after a screen pointer is positioned over the one of theplurality of selectors.
 32. The system of claim 28, wherein the memoryfurther stores operational instructions that, when executed by theprocessor, cause the processor to send data to automatically display asearch string entry box.
 33. The system of claim 28, wherein the memoryfurther stores operational instructions that, when executed by theprocessor, cause the processor to receive a user selection of one of theplurality of selectors.
 34. The system of claim 33, wherein the memoryfurther stores operational instructions that, when executed by theprocessor, cause the processor to send data to display informationassociated with the one of the plurality of selectors.
 35. The system ofclaim 33, wherein the memory further stores operational instructionsthat, when executed by the processor, cause the processor to send data,to display, at a same time as the plurality of selectors, informationassociated with the one of the plurality of selectors.
 36. The system ofclaim 28, wherein the user selection of the one of the plurality of webdata is received by: sending data to display a second plurality ofselectors, each selector of the second plurality of selectors beingassociated with a respective one of the plurality of web data; andreceiving a user selection of one of the second plurality of selectors.37. A system for allowing a user to browse product descriptions for acompany's product line, the system comprising: a processor; and memory,in communication with the processor, that stores: operationalinstructions that, when executed by the processor, cause the processorto receive a user selection of one of a plurality of productdescriptions of a company's product line for display; operationalinstructions that, when executed by the processor, cause the processorto send data to display the one of the plurality of product descriptionsin a display area; and operational instructions that, when executed bythe processor, cause the processor to send data to display a pluralityof selectors in a selector area outside of the display area regardlessof the user selection of the one of the plurality of productdescriptions by sending data comprising markup language codes that areconfigured to cause a browser in communication with the processor toretrieve graphics from a location external to the data comprising themarkup language and external to the browser, the plurality of selectorscomprising one or more of the following selectors: overview informationselector, sales information selector, product availability informationselector, ordering information selector, billing information selector,troubleshooting information selector, and product support informationselector.
 38. The system of claim 37, wherein the system is part of acomputing environment that includes communication over a network, andwherein the processor is in communication with the network.
 39. Thesystem of claim 37, wherein the memory further stores operationalinstructions that, when executed by the processor, cause the processorto send, over a network, at least one of the data to display the one ofthe plurality of product descriptions and the data to display theplurality of selectors.
 40. The system of claim 37, wherein the memoryfurther stores operational instructions that, when executed by theprocessor, cause the processor to send data to display a fly-by helpmessage indicating a function of one of the plurality of selectors aftera screen pointer is positioned over the one of the plurality ofselectors.
 41. The system of claim 37, wherein the memory further storesoperational instructions that, when executed by the processor, cause theprocessor to send data to automatically display a search string entrybox.
 42. The system of claim 37, wherein the memory further storesoperational instructions that, when executed by the processor, cause theprocessor to receive a user selection of one of the plurality ofselectors.
 43. The system of claim 42, wherein the memory further storesoperational instructions that, when executed by the processor, cause theprocessor to send data to display information associated with the one ofthe plurality of selectors.
 44. The system of claim 42, wherein thememory further stores operational instructions that, when executed bythe processor, cause the processor to send data, to display, at a sametime as the plurality of selectors, information associated with the oneof the plurality of selectors.
 45. The system of claim 37, wherein theuser selection of the one of the plurality of product descriptions isreceived by: sending data to display a second plurality of selectors,each selector of the second plurality of selectors being associated witha respective one of the plurality of product descriptions; and receivinga user selection of one of the second plurality of selectors.